//判断字符串是否为空
function isNull(value) {
  var str = value
  str = String(str)
  if (str == 'undefined' || str == 'null' || !str || !/[^\s]/.test(str)) {
    return true;
  } else {
    return false;
  }
}

//控制台日志,支持传一个参数(对象/字符串), 也支持传两个参数(标志,日志消息<可以是对象,可以是字符串>)
function clog(flag, value) {
  try {
    if (isNull(value)) {
      var tmp = stringifyy(flag);
      console.log(tmp)
    } else if (isNull(flag)) {
      var tmp = stringifyy(value);
      console.log(tmp)
    } else {
      var tmp = stringifyy(value);
      console.log(flag + ":" + tmp)
    }
  } catch (err) {
    console.log("clog:", err)
  }
}

function stringifyy(o) {
  var cache = [];
  var str = JSON.stringify(o, function (key, value) {
    if (typeof value === 'object' && value !== null) {
      if (cache.indexOf(value) !== -1) {
        // 移除
        return;
      }
      // 收集所有的值
      cache.push(value);
    }
    return value;
  });
  cache = null;
  return str;
}

// 导入所有组件
//使用方法 components: importComponents(require.context('./', false, /Yi.*\.vue$/)),  // 导入当前目录以"Yi" 开头,以".vue"结尾的全部组件
//require.context('./components', false, /Yi.*\.vue$/) : webpack的方法, 第一个参数为文件路径, 第二个参数为是否包含子文件夹, 第三个参数为正则
function importComponents(comps) {
  let res_components = {}
  comps.keys().forEach((fileName) => {
    let comp = comps(fileName)
    res_components[fileName.replace(/^\.\/(.*)\.\w+$/, '$1')] = comp.default
  })
  return res_components
}

//字符串格式化： 使用方法： StringFormat('{0}你好','小明') 输出：'小明你好'
function StringFormat(args) {
  if (arguments.length > 0) {
    var result = arguments[0];
    for (var i = 1; i < arguments.length; i++) {
      if (arguments[i] != undefined) {
        var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
        result = result.replace(re, arguments[i]);
      }
    }
    return result;
  }
  return "";
}

//获取当前时间, 出参为格式化后的日期字符串
function timeNow() {
  var time = new Date();  // 程序计时的月从0开始取值后+1  
  var m = time.getMonth() + 1;
  var t = time.getFullYear() + "-" + m + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds();
  return t;
}

//一天的开始, 入参为Date类型, 出参为格式化后的日期字符串
function timeDayBegin(time) {
  var m = time.getMonth() + 1;
  var t = time.getFullYear() + "-" + m + "-" + time.getDate() + " 00:00:00";
  return t;
}

//一天的结束, 入参为Date类型, 出参为格式化后的日期字符串
function timeDayEnd(time) {
  var m = time.getMonth() + 1;
  var t = time.getFullYear() + "-" + m + "-" + time.getDate() + " 23:59:59";
  return t;
}


//字符串数组转整型数字键
function strArr2IntArr(arrStr) {
  for (var i = 0; i < arrStr.length; i++) {
    arrStr[i] = parseFloat(arrStr[i])
  }
  return arrStr;
}


